{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "os.chdir(\"E:\\pythonstudy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1*1=1     \n",
      "1*2=2    2*2=4     \n",
      "1*3=3    2*3=6    3*3=9     \n",
      "1*4=4    2*4=8    3*4=12   4*4=16    \n",
      "1*5=5    2*5=10   3*5=15   4*5=20   5*5=25    \n",
      "1*6=6    2*6=12   3*6=18   4*6=24   5*6=30   6*6=36    \n",
      "1*7=7    2*7=14   3*7=21   4*7=28   5*7=35   6*7=42   7*7=49    \n",
      "1*8=8    2*8=16   3*8=24   4*8=32   5*8=40   6*8=48   7*8=56   8*8=64    \n",
      "1*9=9    2*9=18   3*9=27   4*9=36   5*9=45   6*9=54   7*9=63   8*9=72   9*9=81    \n",
      "\n"
     ]
    }
   ],
   "source": [
    "#循环9行，输出1-9的值，并换行，for1\n",
    "for i in range(1,10):\n",
    "    for j in range(1,i+1):\n",
    "        print(\"{}*{}={:<4}\".format(j,i,i*j),end=\" \")#4表示占了多少位，<表示左对齐\n",
    "    print(\" \")\n",
    "print(\"\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1*9=9    2*9=18   3*9=27   4*9=36   5*9=45   6*9=54   7*9=63   8*9=72   9*9=81    \n",
      "1*8=8    2*8=16   3*8=24   4*8=32   5*8=40   6*8=48   7*8=56   8*8=64    \n",
      "1*7=7    2*7=14   3*7=21   4*7=28   5*7=35   6*7=42   7*7=49    \n",
      "1*6=6    2*6=12   3*6=18   4*6=24   5*6=30   6*6=36    \n",
      "1*5=5    2*5=10   3*5=15   4*5=20   5*5=25    \n",
      "1*4=4    2*4=8    3*4=12   4*4=16    \n",
      "1*3=3    2*3=6    3*3=9     \n",
      "1*2=2    2*2=4     \n",
      "1*1=1     \n"
     ]
    }
   ],
   "source": [
    "#循环9行，输出9-1的值，并换行，for2\n",
    "for i in range(9,0,-1):\n",
    "    for j in range(1,i+1):\n",
    "        print(\"{}*{}={:<4}\".format(j,i,i*j),end=\" \")#4表示占了多少位，<表示左对齐\n",
    "    print(\" \")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "9*9=81   8*9=72   7*9=63   6*9=54   5*9=45   4*9=36   3*9=27   2*9=18   1*9=9    \n",
      "         8*8=64   7*8=56   6*8=48   5*8=40   4*8=32   3*8=24   2*8=16   1*8=8    \n",
      "                  7*7=49   6*7=42   5*7=35   4*7=28   3*7=21   2*7=14   1*7=7    \n",
      "                           6*6=36   5*6=30   4*6=24   3*6=18   2*6=12   1*6=6    \n",
      "                                    5*5=25   4*5=20   3*5=15   2*5=10   1*5=5    \n",
      "                                             4*4=16   3*4=12   2*4=8    1*4=4    \n",
      "                                                      3*3=9    2*3=6    1*3=3    \n",
      "                                                               2*2=4    1*2=2    \n",
      "                                                                        1*1=1    \n"
     ]
    }
   ],
   "source": [
    "#循环9行，输出9-1的值，并换行，for3\n",
    "for j in range(9,0,-1):\n",
    "    print(\" \"*(9*(9-j)),end=\"\")#总长度为72个字符，所以每一行前面都要相应的留出空位\n",
    "    for i in range(j,0,-1):\n",
    "        print(\"{}*{}={:<4}\".format(i,j,i*j),end=\" \")#4表示占了多少位，<表示左对齐\n",
    "    print(\"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                                                        1*1=1     \n",
      "                                                               2*2=4    1*2=2     \n",
      "                                                      3*3=9    2*3=6    1*3=3     \n",
      "                                             4*4=16   3*4=12   2*4=8    1*4=4     \n",
      "                                    5*5=25   4*5=20   3*5=15   2*5=10   1*5=5     \n",
      "                           6*6=36   5*6=30   4*6=24   3*6=18   2*6=12   1*6=6     \n",
      "                  7*7=49   6*7=42   5*7=35   4*7=28   3*7=21   2*7=14   1*7=7     \n",
      "         8*8=64   7*8=56   6*8=48   5*8=40   4*8=32   3*8=24   2*8=16   1*8=8     \n",
      "9*9=81   8*9=72   7*9=63   6*9=54   5*9=45   4*9=36   3*9=27   2*9=18   1*9=9     \n",
      "\n"
     ]
    }
   ],
   "source": [
    "#循环9行，输出1-9的值，并换行，for4\n",
    "for i in range(1,10):\n",
    "    print(\" \"*(9*(9-i)),end=\"\")\n",
    "    for j in range(i,0,-1):\n",
    "        print(\"{}*{}={:<4}\".format(j,i,i*j),end=\" \")#4表示占了多少位，<表示左对齐\n",
    "    print(\" \")\n",
    "print(\"\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1*1=1     \n",
      "1*2=2    2*2=4     \n",
      "1*3=3    2*3=6    3*3=9     \n",
      "1*4=4    2*4=8    3*4=12   4*4=16    \n",
      "1*5=5    2*5=10   3*5=15   4*5=20   5*5=25    \n",
      "1*6=6    2*6=12   3*6=18   4*6=24   5*6=30   6*6=36    \n",
      "1*7=7    2*7=14   3*7=21   4*7=28   5*7=35   6*7=42   7*7=49    \n",
      "1*8=8    2*8=16   3*8=24   4*8=32   5*8=40   6*8=48   7*8=56   8*8=64    \n",
      "1*9=9    2*9=18   3*9=27   4*9=36   5*9=45   6*9=54   7*9=63   8*9=72   9*9=81    \n"
     ]
    }
   ],
   "source": [
    "#while1\n",
    "i=1\n",
    "while i<=9:\n",
    "    j=1\n",
    "    while j<=i:\n",
    "        print(\"{}*{}={:<4}\".format(j, i, i * j), end=\" \")\n",
    "        j+=1\n",
    "    print(\" \")\n",
    "    i+=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1*9=9    2*9=18   3*9=27   4*9=36   5*9=45   6*9=54   7*9=63   8*9=72   9*9=81    \n",
      "1*8=8    2*8=16   3*8=24   4*8=32   5*8=40   6*8=48   7*8=56   8*8=64    \n",
      "1*7=7    2*7=14   3*7=21   4*7=28   5*7=35   6*7=42   7*7=49    \n",
      "1*6=6    2*6=12   3*6=18   4*6=24   5*6=30   6*6=36    \n",
      "1*5=5    2*5=10   3*5=15   4*5=20   5*5=25    \n",
      "1*4=4    2*4=8    3*4=12   4*4=16    \n",
      "1*3=3    2*3=6    3*3=9     \n",
      "1*2=2    2*2=4     \n",
      "1*1=1     \n"
     ]
    }
   ],
   "source": [
    "\n",
    "i=9\n",
    "while i>0:\n",
    "    j=1\n",
    "    while j<=i:\n",
    "        print(\"{}*{}={:<4}\".format(j, i, i * j), end=\" \")\n",
    "        j+=1\n",
    "    print(\" \")\n",
    "    i-=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                                                        1*1=1     \n",
      "                                                               2*2=4    1*2=2     \n",
      "                                                      3*3=9    2*3=6    1*3=3     \n",
      "                                             4*4=16   3*4=12   2*4=8    1*4=4     \n",
      "                                    5*5=25   4*5=20   3*5=15   2*5=10   1*5=5     \n",
      "                           6*6=36   5*6=30   4*6=24   3*6=18   2*6=12   1*6=6     \n",
      "                  7*7=49   6*7=42   5*7=35   4*7=28   3*7=21   2*7=14   1*7=7     \n",
      "         8*8=64   7*8=56   6*8=48   5*8=40   4*8=32   3*8=24   2*8=16   1*8=8     \n",
      "9*9=81   8*9=72   7*9=63   6*9=54   5*9=45   4*9=36   3*9=27   2*9=18   1*9=9     \n"
     ]
    }
   ],
   "source": [
    "i=1\n",
    "while i<=9:\n",
    "    print(\" \"*(9*(9-i)),end=\"\")\n",
    "    j=i\n",
    "    while j>0:\n",
    "        print(\"{}*{}={:<4}\".format(j, i, i * j), end=\" \")\n",
    "        j-=1\n",
    "    print(\" \")\n",
    "    i+=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "9*9=81   8*9=72   7*9=63   6*9=54   5*9=45   4*9=36   3*9=27   2*9=18   1*9=9     \n",
      "         8*8=64   7*8=56   6*8=48   5*8=40   4*8=32   3*8=24   2*8=16   1*8=8     \n",
      "                  7*7=49   6*7=42   5*7=35   4*7=28   3*7=21   2*7=14   1*7=7     \n",
      "                           6*6=36   5*6=30   4*6=24   3*6=18   2*6=12   1*6=6     \n",
      "                                    5*5=25   4*5=20   3*5=15   2*5=10   1*5=5     \n",
      "                                             4*4=16   3*4=12   2*4=8    1*4=4     \n",
      "                                                      3*3=9    2*3=6    1*3=3     \n",
      "                                                               2*2=4    1*2=2     \n",
      "                                                                        1*1=1     \n"
     ]
    }
   ],
   "source": [
    "i=9\n",
    "while i>0:\n",
    "    print(\" \"*(9*(9-i)),end=\"\")\n",
    "    j=i\n",
    "    while j>0:\n",
    "        print(\"{}*{}={:<4}\".format(j, i, i * j), end=\" \")\n",
    "        j-=1\n",
    "    print(\" \")\n",
    "    i-=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
